with v8.Class_Data, v8.Class_Function_Template;
package v8.Class_Signature is
   type Signature (<>) is new v8.Class_Data.Data with private;
   type Pointer is access all Signature;
   -- A Signature specifies which receivers and arguments a function can legally be called with.



   function Create
     (receiver : v8.Class_Function_Template.Pointer := null)
      return Pointer;

   function Create
     (receiver : v8.Class_Function_Template.Pointer := null;
      args     : v8.Class_Function_Template.Function_Template_Array
     ) return Pointer;

private
   type Signature is new v8.Class_Data.Data with null record;

end v8.Class_Signature;
